#pragma once
#ifndef SCREEN_H
#define SCREEN_H

#include <TFT_eSPI.h>
#include <Arduino.h>
#include <TJpg_Decoder.h>
#include <lvgl.h>
#include <globals.h>
#include <logger.h>
#include "../assets/logo_jpg.h"
#define UMEKO_LV_BUFFER_SIZE (320 * 40)

// 声明外部变量，不在头文件中定义
extern lv_disp_draw_buf_t draw_buf;
extern lv_color_t *buf;
extern TFT_eSPI tft;

// 函数声明
void screen_init();
void screen_update();
void screen_deinit();

// 其他函数声明
void my_disp_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p);
void render_logo();
void set_brightness(int _brightness, bool remenber=true);
void smooth_off();
void smooth_on();
bool tft_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t* bitmap);
void screen_element_prepare();

#if LV_USE_LOG != 0
void my_print(const char * buf);
#endif

#endif // SCREEN_H